/* eslint-disable no-var */
import CryptoJS from 'crypto-js';

export default {
    /**
     * 接口数据加密函数
     * @param str string 需加密的json字符串
     * @param key string 加密key(16位)
     * @param iv string 加密向量(16位)
     * @return string 加密密文字符串
     */
    encrypt(str: any, key: any, iv: any) {
      //密钥16位
         var keyR: any = CryptoJS.enc.Utf8.parse(key);
         //加密向量16位
         var ivR: any = CryptoJS.enc.Utf8.parse(iv);
         const encrypted = CryptoJS.AES.encrypt(str, keyR, {
             iv: ivR,
             mode: CryptoJS.mode.CBC,
             padding: CryptoJS.pad.Pkcs7
         });
         return encrypted.toString();
    },
   
    
     /**
     * 接口数据解密函数
     * @param str string 已加密密文
     * @param key string 加密key(16位)
     * @param iv string 加密向量(16位)
     * @returns {*|string} 解密之后的json字符串
     */
    decrypt(str: any, KEY: any, IV: any) {
      const key = CryptoJS.enc.Utf8.parse(KEY);
      const iv = CryptoJS.enc.Utf8.parse(IV);
      const decrypt = CryptoJS.AES.decrypt(str, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
      return decrypt.toString(CryptoJS.enc.Utf8);
    }
   
  }